#ifndef __APP_DEVICE_H__
#define __APP_DEVICE_H__

#include "app_buffer.h"
#include <pthread.h>

typedef struct 
{
    char *fileName;//文件名
    int fd;//文件描述符
    Buffer *upBuffer;//上行缓冲区
    Buffer *downBuffer;//下行缓冲区
    pthread_t readThread;//读线程
    int isRunning;//读线程是否运行
    long lastWriteTime;//上次读时间
    //读后处理：对读取到的数据进行处理，（如：解析蓝牙数据转换成字符数组）
    int (*post_read)(char *data, int len);
    //写前处理：对要写入的数据进行处理（如：将字符数组转换成蓝牙数据）
    int (*pre_write)(char *data, int len);
}Device;

Device *app_device_init(char *fileName);

int app_device_start();

void app_device_destroy();

#endif /* __APP_DEVICE_H__ */
